package com.sdhs.listmanage.domain.entity;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springframework.data.annotation.Transient;

import com.sdhs.common.annotation.Excel;
import com.sdhs.common.core.domain.BaseEntity;

import lombok.Getter;
import lombok.Setter;

/**
 * 清单管理对象 gc_manage_list
 *
 * @author ww
 */
@Setter
@Getter
public class GcManageList extends BaseEntity {
    public GcManageList() {
        this.isDelete = "0";
    }
    /**
     * 清单管理主键
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 子目号
     */
    @Excel(name = "子目号")
    private String subheadingsNumber;

    /**
     * 父节点-子目号
     */
    @Excel(name = "父节点-子目号")
    private String parentSubheadings;

    /**
     * 子目名称
     */
    @Excel(name = "子目名称")
    private String subheadingsName;


    /**
     * 品牌
     */
    @Excel(name = "品牌")
    private String brandName;

    /**
     * 型号
     */
    @Excel(name = "型号")
    private String modelNumber;

    /**
     * 单位
     */
    @Excel(name = "单位")
    private String unit;

    /**
     * 合同数量
     */
    @Excel(name = "合同数量")
    private String quantity;

    /**
     * 原来合同数量
     */
    private String originallyQuantity;
    /**
     * 销售单价(元) - 含税单价
     */
    @Excel(name = "含税单价")
    private String salePrice;

    /**
     * 销售合价(元) - 合同含税合价
     */
    @Excel(name = "合同含税合价")
    private String saleSumPrice;

    /**
     * 设备单价(元) - 设备含税单价
     */
    @Excel(name = "设备含税单价")
    private String devicePrice;

    /**
     * 施工单价(元）- 施工含税单价
     */
    @Excel(name = "施工含税单价")
    private String constructionPrice;

    /**
     * 其他(元）- 服务含税单价
     */
    @Excel(name = "服务含税单价")
    private String otherPrice;

    /**
     * 标前测算单价(元) - 综合含税单价
     */
    @Excel(name = "综合含税单价")
    private String bidCostPrice;

    /**
     * 标前测算合价(元) - 综合含税合价
     */
    @Excel(name = "综合含税合价")
    private String costNegotiable;

    /**
     * 税率（%）
     */
    @Excel(name = "税率（%）")
    private String rateTax;

    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private String creater;

    /**
     * 修改人
     */
    @Excel(name = "修改人")
    private String updater;

    /**
     * 用户名
     */
    @Excel(name = "用户名")
    private String userName;

    /**
     * 是否删除
     */
    @Excel(name = "是否删除")
    private String isDelete;

    /**
     * 关联项目id
     */
    @Excel(name = "关联项目id")
    private Long projectId;

    /** 子部门 */
    private List<GcManageList> children = new ArrayList<>();

    /** 清单id 关联变更清单id*/
    @JsonSerialize(using = ToStringSerializer.class)
    private Long manageId;
    /**
     * 采购数量
     */
    @Transient
    private Long totalPurchaseQuantity;
    /**
     * 供货数量
     */
    @Transient
    private Long totalSupplyQuantity;
    /**
     * 到货数量
     */
    @Transient
    private Long totalArrivalQuantity;
    /**
     * 库存数量数量
     */
    @Transient
    private Long inventoryQuantity;

    /** 原始数量 */
    @Transient
    private String saleQuantity;
    /** 原始合同含税合价*/
    private String oldSaleSumPrice;
    /*原始合同不含税合价*/
    private String oldTotalPrice;
    /*原始合同总税金*/
    private String oldContractTotalTax;
    /*含税单价*/
    private String oldSalePrice;
    /*不含税单价*/
    private String oldUnitPrice;

    /** 备注 */
    @Excel(name = "备注")
    private String remark;

    /** 暂存标识 */
    private String transientIdentifier;

    /**
     * 计划类别
     */
    @Excel(name = "计划类别")
    private String procurementType;
    
    /** 不含税单价 */
    @Excel(name = "不含税单价")
    private BigDecimal unitPrice;
    
    /** 合同不含税合价 */
    @Excel(name = "合同不含税合价")
    private BigDecimal totalPrice;
    
    /** 合同总税金 */
    @Excel(name = "合同总税金")
    private BigDecimal contractTotalTax;
    
    /** 设备税率（%） */
    @Excel(name = "设备税率（%）")
    private String equipmentTax;
    
    /** 施工税率（%） */
    @Excel(name = "施工税率（%）")
    private String constructionTax;
    
    /** 服务税率（%） */
    @Excel(name = "服务税率（%）")
    private String serviceTax;
    
    /** 综合不含税合价 */
    @Excel(name = "综合不含税合价")
    private BigDecimal comprehensivePrice;
    
    /** 标前测算总税金 */
    @Excel(name = "标前测算总税金")
    private BigDecimal preTotalTax;
    
    /** 商机立项唯一ID */
    @Excel(name = "商机立项唯一ID")
    private String businessId;
    
    /** 主办协办类型1-主办，0-协办 */
    @Excel(name = "主办协办类型")
    private String isOrganization;

    private String changeType;

    private String huoArrivalQuantity; // 确认货物数量
    private String huoFinalPrice; // 确认货物最终采购单价平均值
    private String shiArrivalQuantity; // 确认施工数量
    private String shiFinalPrice; // 确认施工最终采购单价平均值
    private String fuwuArrivalQuantity; // 确认服务数量
    private String fuwuFinalPrice; // 确认服务最终采购单价平均值
    private String shiPurchaseQuantity; // 采购计划施工数量
    private String fuwuPurchaseQuantity; // 采购计划服务数量
    private String huoPurchaseQuantity; // 采购计划货物数量
}



